/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package db;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;

/**
 *
 * @author FCCCRTI05
 */
public class Utilidades
{
    //DE AMBITO GENERAL

    //OBTENER EL STACKTRACE COMO STRING
    public String ObtenerStringStackTrace(Throwable t)
    {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw,true);
        t.printStackTrace(pw);
        pw.flush();
        sw.flush();
        return sw.toString();
    }

    //ELIMINAR CARACTERES ESPECIALES DE STRINGS
    public String QuitarCaracteresEspeciales(String texto)
    {
        String cadena = "";
        cadena = texto.replaceAll("\'","");
        cadena = cadena.replaceAll("\"","");
        return cadena;
    }

    //ELIMINAR ESPACIOS EN BLANCO SOBRANTES
    public String QuitarEspaciosBlancoSobrantes(String texto)
    {
        String cadena = "";
        if (texto != null)
        {
            StringTokenizer tokens = new StringTokenizer(texto);
            cadena = "";
            while(tokens.hasMoreTokens())
                cadena += " "+tokens.nextToken();
            cadena = cadena.toString();
            cadena = cadena.trim();
        }
        return cadena;
    }
    
    public String CodigoPais(Connection conex,String descripcion)
    {
        String codigo = null;
        try
        {
            Statement s = conex.createStatement();
            ResultSet rs = s.executeQuery("select descrip_pais,agrupa_pais"+
            " from fcc.paises"+
            " where descrip_pais like "+"'"+descripcion+"'");
            if ((rs != null)&&(rs.next()))
                codigo = rs.getString("agrupa_pais");
            rs.close();
            s.close();
        }
        catch (Exception x)
        {
            codigo = "ER";
        }
        return codigo;
    }

    public String ObtenerNombreProveedor(Connection conex,float codigo)
    {
        String nombre = null;
        Statement s = null;
        ResultSet rs = null;
        try
        {
            s = conex.createStatement();
            rs = s.executeQuery("select ABAN8,ABALPH from TESTDTA.F0101"+
            " where ABAN8 = "+codigo);
            if ((rs != null)&&(rs.next()))
                nombre = rs.getString("ABALPH");
            rs.close();
            s.close();
        }
        catch (Exception x)
        {
            nombre = x.getMessage();
        }
        return nombre;
    }

    public String ObtenerNombreUsuario(Connection conex,String usuario)
    {
        String nombre = null;
        Statement s = null;
        ResultSet rs = null;
        try
        {
            s = conex.createStatement();
            rs = s.executeQuery("select usuario_usu,nombres_usu from F55_PAGOS_USUARIOS"+
            " where usuario_usu like "+"'"+usuario+"'");
            if ((rs != null)&&(rs.next()))
                nombre = rs.getString("nombres_usu");
            rs.close();
            s.close();
        }
        catch (Exception x)
        {
            nombre = x.getMessage();
        }
        return nombre;
    }

    public String ConvertirJulianoAGregorianoHTML(String juliano)
    {
        String fecha = "";
        //FORMATO DE FECHA NORMAL GREGORIANO
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        if (juliano != null)
        {
            int anio = Integer.parseInt(juliano.substring(1,3));
            anio = anio+2000;
            int dia_anio = Integer.parseInt(juliano.substring(3,6));
            Calendar calendario = new GregorianCalendar();
            calendario.set(Calendar.YEAR,anio);
            calendario.set(Calendar.DAY_OF_YEAR,dia_anio);
            fecha = sdf.format(calendario.getTime());
        }
        return fecha;
    }

    public String ConvertirJulianoAGregorianoSQL(String juliano)
    {
        String fecha = "";
        //FORMATO DE FECHA NORMAL GREGORIANO
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        if (juliano != null)
        {
            int anio = Integer.parseInt(juliano.substring(1,3));
            anio = anio+2000;
            int dia_anio = Integer.parseInt(juliano.substring(3,6));
            Calendar calendario = new GregorianCalendar();
            calendario.set(Calendar.YEAR,anio);
            calendario.set(Calendar.DAY_OF_YEAR,dia_anio);
            fecha = sdf.format(calendario.getTime());
        }
        return fecha;
    }

    public String[] ObtenerTelefonoFaxCompania(String compania)
    {
        compania = compania.substring(2,compania.length());
        String datos[] = new String[3];
        Connection conex = null;
        Statement s = null;
        ResultSet rs = null;
        try
        {
            db.Conexion conectar = new db.Conexion();
            conectar.ConectarMySQL();
            conex = conectar.ObtenerConexionMySQL();
            s = conex.createStatement();
            rs = s.executeQuery("select id_cia,descrip_cia,telefono_cia,fax_cia from companias"+
            " where id_cia like "+"'"+compania+"'");
            while (rs.next())
            {
                datos[0] = rs.getString("descrip_cia");
                datos[1] = rs.getString("telefono_cia");
                datos [2] = rs.getString("fax_cia");
            }
            rs.close();
            s.close();
            conex.close();
        }
        catch (Exception x)
        {
            datos[0] = x.getMessage();
        }
        return datos;
    }
}
